/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package newpackage;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import org.codehaus.jackson.annotate.JsonIgnore;

/**
 *
 * @author Juan
 */
@Entity
@Table(name = "PROCESO")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Proceso.findAll", query = "SELECT p FROM Proceso p"),
    @NamedQuery(name = "Proceso.findByCodProceso", query = "SELECT p FROM Proceso p WHERE p.codProceso = :codProceso"),
    @NamedQuery(name = "Proceso.findByCodLocalidad", query = "SELECT p FROM Proceso p WHERE p.codLocalidad = :codLocalidad"),
    @NamedQuery(name = "Proceso.findByCodTipJuz", query = "SELECT p FROM Proceso p WHERE p.codTipJuz = :codTipJuz"),
    @NamedQuery(name = "Proceso.findByCodJuzgado", query = "SELECT p FROM Proceso p WHERE p.codJuzgado = :codJuzgado"),
    @NamedQuery(name = "Proceso.findByNroExpediente", query = "SELECT p FROM Proceso p WHERE p.nroExpediente = :nroExpediente"),
    @NamedQuery(name = "Proceso.findByFechaInicio", query = "SELECT p FROM Proceso p WHERE p.fechaInicio = :fechaInicio"),
    @NamedQuery(name = "Proceso.findByDemandante", query = "SELECT p FROM Proceso p WHERE p.demandante = :demandante"),
    @NamedQuery(name = "Proceso.findByDemandado", query = "SELECT p FROM Proceso p WHERE p.demandado = :demandado"),
    @NamedQuery(name = "Proceso.findByCodMateria", query = "SELECT p FROM Proceso p WHERE p.codMateria = :codMateria"),
    @NamedQuery(name = "Proceso.findByMontoProvis", query = "SELECT p FROM Proceso p WHERE p.montoProvis = :montoProvis"),
    @NamedQuery(name = "Proceso.findByIntereses", query = "SELECT p FROM Proceso p WHERE p.intereses = :intereses"),
    @NamedQuery(name = "Proceso.findByComentario", query = "SELECT p FROM Proceso p WHERE p.comentario = :comentario"),
    @NamedQuery(name = "Proceso.findByEstado", query = "SELECT p FROM Proceso p WHERE p.estado = :estado"),
    @NamedQuery(name = "Proceso.findByRutaArchivo", query = "SELECT p FROM Proceso p WHERE p.rutaArchivo = :rutaArchivo"),
    @NamedQuery(name = "Proceso.findByMontoRec", query = "SELECT p FROM Proceso p WHERE p.montoRec = :montoRec"),
    @NamedQuery(name = "Proceso.findByConceptoRec", query = "SELECT p FROM Proceso p WHERE p.conceptoRec = :conceptoRec"),
    @NamedQuery(name = "Proceso.findByEstConcursal", query = "SELECT p FROM Proceso p WHERE p.estConcursal = :estConcursal"),
    @NamedQuery(name = "Proceso.findByEstReconocimiento", query = "SELECT p FROM Proceso p WHERE p.estReconocimiento = :estReconocimiento"),
    @NamedQuery(name = "Proceso.findByEstLaboral", query = "SELECT p FROM Proceso p WHERE p.estLaboral = :estLaboral")})
public class Proceso implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "CodProceso")
    private Long codProceso;
    @Column(name = "CodLocalidad")
    private Integer codLocalidad;
    @Column(name = "CodTipJuz")
    private Integer codTipJuz;
    @Column(name = "CodJuzgado")
    private Integer codJuzgado;
    @Column(name = "NroExpediente")
    private String nroExpediente;
    @Column(name = "FechaInicio")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaInicio;
    @Column(name = "Demandante")
    private String demandante;
    @Column(name = "Demandado")
    private String demandado;
    @Column(name = "CodMateria")
    private Integer codMateria;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "MontoProvis")
    private BigDecimal montoProvis;
    @Column(name = "Intereses")
    private Double intereses;
    @Column(name = "Comentario")
    private String comentario;
    @Column(name = "Estado")
    private Short estado;
    @Column(name = "RutaArchivo")
    private String rutaArchivo;
    @Column(name = "MontoRec")
    private BigDecimal montoRec;
    @Column(name = "ConceptoRec")
    private String conceptoRec;
    @Column(name = "EstConcursal")
    private Short estConcursal;
    @Column(name = "EstReconocimiento")
    private Short estReconocimiento;
    @Column(name = "EstLaboral")
    private Short estLaboral;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "proceso")
    private Collection<Detallecosto> detallecostoCollection;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "proceso")
    private Collection<Estadoprocesal> estadoprocesalCollection;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "proceso")
    private Collection<Detalletareas> detalletareasCollection;
    @JoinColumn(name = "CodResponsable", referencedColumnName = "CodResponsable")
    @ManyToOne
    private Responsable codResponsable;
    @JoinColumns({
        @JoinColumn(name = "CodRama", referencedColumnName = "CodRamaProceso"),
        @JoinColumn(name = "CodTipoProceso", referencedColumnName = "CodTipoProceso")})
    @ManyToOne
    private Ramatipo ramatipo;

    public Proceso() {
    }

    public Proceso(Long codProceso) {
        this.codProceso = codProceso;
    }

    public Long getCodProceso() {
        return codProceso;
    }

    public void setCodProceso(Long codProceso) {
        this.codProceso = codProceso;
    }

    public Integer getCodLocalidad() {
        return codLocalidad;
    }

    public void setCodLocalidad(Integer codLocalidad) {
        this.codLocalidad = codLocalidad;
    }

    public Integer getCodTipJuz() {
        return codTipJuz;
    }

    public void setCodTipJuz(Integer codTipJuz) {
        this.codTipJuz = codTipJuz;
    }

    public Integer getCodJuzgado() {
        return codJuzgado;
    }

    public void setCodJuzgado(Integer codJuzgado) {
        this.codJuzgado = codJuzgado;
    }

    public String getNroExpediente() {
        return nroExpediente;
    }

    public void setNroExpediente(String nroExpediente) {
        this.nroExpediente = nroExpediente;
    }

    public Date getFechaInicio() {
        return fechaInicio;
    }

    public void setFechaInicio(Date fechaInicio) {
        this.fechaInicio = fechaInicio;
    }

    public String getDemandante() {
        return demandante;
    }

    public void setDemandante(String demandante) {
        this.demandante = demandante;
    }

    public String getDemandado() {
        return demandado;
    }

    public void setDemandado(String demandado) {
        this.demandado = demandado;
    }

    public Integer getCodMateria() {
        return codMateria;
    }

    public void setCodMateria(Integer codMateria) {
        this.codMateria = codMateria;
    }

    public BigDecimal getMontoProvis() {
        return montoProvis;
    }

    public void setMontoProvis(BigDecimal montoProvis) {
        this.montoProvis = montoProvis;
    }

    public Double getIntereses() {
        return intereses;
    }

    public void setIntereses(Double intereses) {
        this.intereses = intereses;
    }

    public String getComentario() {
        return comentario;
    }

    public void setComentario(String comentario) {
        this.comentario = comentario;
    }

    public Short getEstado() {
        return estado;
    }

    public void setEstado(Short estado) {
        this.estado = estado;
    }

    public String getRutaArchivo() {
        return rutaArchivo;
    }

    public void setRutaArchivo(String rutaArchivo) {
        this.rutaArchivo = rutaArchivo;
    }

    public BigDecimal getMontoRec() {
        return montoRec;
    }

    public void setMontoRec(BigDecimal montoRec) {
        this.montoRec = montoRec;
    }

    public String getConceptoRec() {
        return conceptoRec;
    }

    public void setConceptoRec(String conceptoRec) {
        this.conceptoRec = conceptoRec;
    }

    public Short getEstConcursal() {
        return estConcursal;
    }

    public void setEstConcursal(Short estConcursal) {
        this.estConcursal = estConcursal;
    }

    public Short getEstReconocimiento() {
        return estReconocimiento;
    }

    public void setEstReconocimiento(Short estReconocimiento) {
        this.estReconocimiento = estReconocimiento;
    }

    public Short getEstLaboral() {
        return estLaboral;
    }

    public void setEstLaboral(Short estLaboral) {
        this.estLaboral = estLaboral;
    }

    @XmlTransient
    @JsonIgnore
    public Collection<Detallecosto> getDetallecostoCollection() {
        return detallecostoCollection;
    }

    public void setDetallecostoCollection(Collection<Detallecosto> detallecostoCollection) {
        this.detallecostoCollection = detallecostoCollection;
    }

    @XmlTransient
    @JsonIgnore
    public Collection<Estadoprocesal> getEstadoprocesalCollection() {
        return estadoprocesalCollection;
    }

    public void setEstadoprocesalCollection(Collection<Estadoprocesal> estadoprocesalCollection) {
        this.estadoprocesalCollection = estadoprocesalCollection;
    }

    @XmlTransient
    @JsonIgnore
    public Collection<Detalletareas> getDetalletareasCollection() {
        return detalletareasCollection;
    }

    public void setDetalletareasCollection(Collection<Detalletareas> detalletareasCollection) {
        this.detalletareasCollection = detalletareasCollection;
    }

    public Responsable getCodResponsable() {
        return codResponsable;
    }

    public void setCodResponsable(Responsable codResponsable) {
        this.codResponsable = codResponsable;
    }

    public Ramatipo getRamatipo() {
        return ramatipo;
    }

    public void setRamatipo(Ramatipo ramatipo) {
        this.ramatipo = ramatipo;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (codProceso != null ? codProceso.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Proceso)) {
            return false;
        }
        Proceso other = (Proceso) object;
        if ((this.codProceso == null && other.codProceso != null) || (this.codProceso != null && !this.codProceso.equals(other.codProceso))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "newpackage.Proceso[ codProceso=" + codProceso + " ]";
    }
    
}
